package com.veterinaria.actions;

import java.util.ArrayList;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Actions;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;

import com.opensymphony.xwork2.ActionSupport;
import com.veterinaria.bean.DistritoBean;
import com.veterinaria.bean.EmpleadoBean;
import com.veterinaria.bean.ProvinciaBean;
import com.veterinaria.services.DistritoImplements;
import com.veterinaria.services.EmpleadoImplements;
import com.veterinaria.services.ProvinciaImplements;

@ParentPackage(value="ProyVeterinaria")
public class EmpleadoAction extends ActionSupport{

	private static final long serialVersionUID = 1L;
	
	private ArrayList<EmpleadoBean> listaEmpleado;
	private EmpleadoBean empleadoBean=new EmpleadoBean();
	private EmpleadoBean parametroEmpleado=new EmpleadoBean();
	EmpleadoImplements empleadoImp=new EmpleadoImplements();
	
	ProvinciaImplements provinciaImp=new ProvinciaImplements();
	DistritoImplements distritoImp=new DistritoImplements();
	private ArrayList<ProvinciaBean> listaProvincia;
	private ArrayList<DistritoBean> listaDistrito;
	
	private boolean estadoDNI;
	private static String accionGuardar=null;
	
    @Actions({@Action( value="AListarEmpleado",results={@Result(name="success",location="T_listaEmpleado",type="tiles")}),
    	@Action( value="JSONListarEmpleado",results={@Result(name="success",type="json")})})	
	public String listarEmpleado() throws Exception{
		listaEmpleado=empleadoImp.listarEmpleados(parametroEmpleado);
		return SUCCESS;
	}
	
	@Action( value="AObtenerEmpleado",results={@Result(name="success",location="T_mantenimientoEmpleado",type="tiles")})
	public String obtenerEmpleado() throws Exception{		
		empleadoBean=empleadoImp.obtenerEmpledao(parametroEmpleado);
		estadoDNI=true;
		accionGuardar="Actualizar";
		return SUCCESS;
	}
	
	@Action( value="ANuevoEmpleado",results={@Result(name="success",location="T_mantenimientoEmpleado",type="tiles")})
	public String nuevoEmpleado() throws Exception{		
		empleadoBean=new EmpleadoBean();
		accionGuardar="Insertar";
		estadoDNI=false;
		return SUCCESS;
	}
	
	@Action( value="JSONCargarPronvicia",results={@Result(name="success",type="json")})
	public String cargarPronvicia() throws Exception{
		listaProvincia=provinciaImp.listarProvincias();
		return SUCCESS;
	}
	
	@Action( value="JSONCargarDistrito",results={@Result(name="success",type="json")})
	public String cargarDistrito() throws Exception{
		listaDistrito=distritoImp.listarDistritos(empleadoBean.getCodProvincia());
		return SUCCESS;
	}
	
	@Action( value="AGuardarEmpleado",results={@Result(name="success",location="T_listaEmpleado",type="tiles")})
	public String guardarEmpleado() throws Exception{
		System.out.println("ACCION GUARDAR::"+accionGuardar);
		if(accionGuardar.equals("Insertar")){
			System.out.println("ENTRO A INSERTAR");
			empleadoImp.grabarEmpleado(empleadoBean);
		}
		
        if(accionGuardar.equals("Actualizar")){
        	System.out.println("ENTRO A ACTUALIZAR");
			empleadoImp.actualizarEmpleado(empleadoBean);
		}
        
		listaEmpleado=empleadoImp.listarEmpleados(parametroEmpleado);
		
		return SUCCESS;
	}
	
	@Action( value="AActualizarEmpleado",results={@Result(name="success",location="T_listaEmpleado",type="tiles")})
	public String actualizarEmpleado() throws Exception{
		return SUCCESS;
	}
	
	@Action( value="AEliminarEmpleado",results={@Result(name="success",location="T_listaEmpleado",type="tiles")})
	public String eliminar() throws Exception{		
		empleadoImp.eliminarEmpleado(parametroEmpleado);
		listaEmpleado=empleadoImp.listarEmpleados(empleadoBean);
		return SUCCESS;
	}
	
	public ArrayList<EmpleadoBean> getListaEmpleado() {
		return listaEmpleado;
	}
	public void setListaEmpleado(ArrayList<EmpleadoBean> listaEmpleado) {
		this.listaEmpleado = listaEmpleado;
	}
	public EmpleadoBean getEmpleadoBean() {
		return empleadoBean;
	}
	public void setEmpleadoBean(EmpleadoBean empleadoBean) {
		this.empleadoBean = empleadoBean;
	}
	public EmpleadoBean getParametroEmpleado() {
		return parametroEmpleado;
	}
	public void setParametroEmpleado(EmpleadoBean parametroEmpleado) {
		this.parametroEmpleado = parametroEmpleado;
	}

	public ArrayList<DistritoBean> getListaDistrito() {
		return listaDistrito;
	}

	public void setListaDistrito(ArrayList<DistritoBean> listaDistrito) {
		this.listaDistrito = listaDistrito;
	}


	public boolean isEstadoDNI() {
		return estadoDNI;
	}

	public void setEstadoDNI(boolean estadoDNI) {
		this.estadoDNI = estadoDNI;
	}

	public ArrayList<ProvinciaBean> getListaProvincia() {
		return listaProvincia;
	}

	public void setListaProvincia(ArrayList<ProvinciaBean> listaProvincia) {
		this.listaProvincia = listaProvincia;
	}

}
